Generally described, the ability for a common user interface to be accessible to a variety of users is necessary for the distribution of the common user interface in a global marketplace. For example, to facilitate use of the common user interface in different countries/regions, the user interface should support multiple languages. In the simplest form, a software provider can provide multiple language user interfaces by manually customizing the user interface software code to satisfy the specific language requirements of each supported language. This approach is generally inefficient, however, in that the software provider must maintain separate software code bases for each of the supported languages. Accordingly, the software provider must independently support each separate software code base, such as providing technical support, providing updates, and/or providing patches.
Another attempt to expand the languages supported by a user interface utilizes a common user interface software code base in conjunction with various language-specific resource libraries. One such system is Microsoft Corporation's multilingual user interface (“MUI”). Generally described, under MUI, the operating system includes a common user interface code base and a default resource module that serves as a default language for the user interface. Additionally, the operating system maintains a number of alternative language-specific resource modules for displaying some or all the user interface objects in an alternative language. Accordingly, if a user specifies one of the non-English language supported by MUI, the operating system loads the resources from the corresponding alternative language resource module.
While use of language-specific resource library files, such as an operating system implementing MUI, increases the number of languages that can be supported by a common user interface, language-specific library files are still inefficient in allowing the common user interface to be adapted for some languages. For example, some languages, such as Arabic or Hebrew, follow a right to left (“RTL”) language reading direction. If a common user interface is laid out in languages that utilize a left to right (“LTR”) language reading direction, such as in Spanish, French, or English, a mere translation of words composed in a language following a LTR language reading direction, does not suffice to make the user interface understandable in a language following a RTL language reading direction.
Thus, there is a need for a common user interface that is capable of mirroring user interface objects for language reading direction conversion.